Loading TOC...

MarkLogic 10 Product Documentation
PUT /manage/v2/roles/{id|name}/properties

Summary

This resource address can be used to update the properties for the specified role.

URL Parameters
format The format of the posted data. Can be either json (default) or xml. This value overrides the Accept header if both are present.
Request Headers
Accept The expected MIME type of the response. If the format parameter is present, it takes precedence over the Accept header.
Content-type The MIME type of the data in the request body, either application/xml or application/json.
Response Headers
Content-type The MIME type of the data in the response body. Depending upon the value of the format parameter or Accept header, either application/xml or application/json.

Response

Upon success, MarkLogic Server returns status code 204 (No Content). If the payload is malformed or the database does not exist, a status code of 400 (Bad Request) is returned. A status code of 401 (Unauthorized) is returned if the user does not have the necessary privileges.

Required Privileges

This operation requires one of the following:

Usage Notes

The properties that can be modified are shown here. The property queries was added in 10.0-7.

Note: The properties described here are for XML payloads. In general they are the same for JSON, with the exception that, in JSON, roles, permissions, privileges, collections, and queries are expressed in singular form. For example, in JSON, roles is instead role and the format is: "role":["rolename"]. Please pay special attention that the singular form of queries is capability-query.

The structure of the output returned from this REST API is as follows:

role-name

The Role name (unique)

description

An object's description.

compartment

The compartment that this role is part of.

external-names

The external names specifications.

This is a complex structure with the following children:

external-name

The name used to match external group name.

roles

The roles assigned. The roles assigned to the user.

This is a complex structure with the following children:

role

A role identifier (unique key).

permissions

The default set of permissions used in document creation.

This is a complex structure with the following children:

permission

Permission representation.

This is a complex structure with the following children:

role-name

The Role name (unique)

capability

The action/task permitted by a permission

privileges

A list of privileges.

This is a complex structure with the following children:

privilege

A privilege.

This is a complex structure with the following children:

privilege-name

Privilege name (unique)

action

A URI to protect.

kind

A protected "action" (or object).

collections

The default set of collections used in document creation.

This is a complex structure with the following children:

collection

The collection uri.

queries

This is a complex structure with the following children:

capability-query

This is a complex structure with the following children:

capability

The action/task permitted by a permission

query

This is a complex structure with the following children:

cts:query

Example


curl -X PUT  --anyauth -u admin:admin -H "Content-Type:application/json" \
-d '{"description":"engineers"}' http://localhost:8002/manage/v2/roles/engineer/properties
 
==>  Changes the description for the role, "engineer," to "engineers". 
    

Example


// JSON payload example for updating a role with queries.

$ cat payload.json

{
  "role-name":"region-EMEA", 
  "description":"Can see region EMEA documents.", 
  "compartment":"compartment-region", 
  "capability-query":[{
    "capability":"node-update", 
    "query": {
      "elementQuery": {
        "element": ["metadata"],
        "query": {
          "elementWordQuery": {
            "element": ["region"],
            "text": ["EMEA"], 
            "options": ["lang=en"]
          }
        }
      }
    }
  }]
}
  
curl -X PUT -i --digest -u admin:admin -H "Content-Type:application/json" \
-d @payload.json http://localhost:8002/manage/v2/roles/region-EMEA/properties

==> Changes the role queries of a role, named "region-EMEA", from capability "read" to
capability "node-update".
    

Example


(: XML payload for updating a role with queries :)

$ cat payload.xml

<role-properties xmlns="http://marklogic.com/manage/role/properties">
  <compartment>compartment-region</compartment>
  <role-name>region-EMEA</role-name>
  <description>Can see region EMEA documents.</description>
  <queries>
    <capability-query>
      <capability>node-update</capability>
      <query>
        <cts:element-query xmlns:cts="http://marklogic.com/cts">
          <cts:element>metadata</cts:element>
          <cts:element-word-query>
            <cts:element>region</cts:element>
            <cts:text xml:lang="en">EMEA</cts:text>
          </cts:element-word-query>
        </cts:element-query>
      </query>
    </capability-query>
  </queries>
</role-properties>

curl -X PUT -i --digest -u admin:admin -H "Content-Type:application/xml" \
-d @payload.xml http://localhost:8002/manage/v2/roles/region-EMEA/properties

==> Changes the role queries of a role, named "region-EMEA", from capability "read" to
capability "node-update".
    

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.